<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="initial-scale=1.0,maximum-scale=1,user-scalable=no">
    <title>显示网络场景</title>
    <style>
        html,body,#viewDiv {
            padding: 0;
            margin: 0;
            height: 100%;
            width: 100%;
        }
    </style>
    <link rel="stylesheet" href="https://js.arcgis.com/4.17/esri/css/main.css">
    <script src="https://js.arcgis.com/4.17/"></script>
    <script>
        require([
          "esri/Map",
          "esri/views/MapView",
          "esri/widgets/Locate",
          "esri/widgets/Track",
          "esri/Graphic",
           //*** ADD ***//
           //  添加指南针并旋转视图 => 将“跟踪”窗口小部件useHeadingEnabled属性设置为，true然后再次尝试应用程序，以查看开始跟踪时视图（和指南针）如何改变方向
        "esri/widgets/Compass"
        ],function(
            Map,
            MapView,
            Locate,
            Track,
            Graphic,
            Compass
        ) {
            var map = new Map({
                basemap: "streets-navigation-vector"
            });

            var view = new MapView({
                container: "viewDiv",
                map: map,
                center: [-40, 28],
                zoom: 2
            });
            //
            //查找您的地理位置
            //

            //这一段的效果不太理解


            // 创建Locate窗口小部件并将其设置useHeadingEnabled为false，这样它就不会更改地图的旋转
            // 使用goToOverride来为小部件提供您自己的自定义缩放功能
            var locate = new Locate({
                view: view,
                useHeadingEnabled: false,
                goToOverride: function(view, options) { // 为小部件提供自己的自定义缩放功能
                    options.target.scale = 1500;  // 替代默认地图比例，将缩放地图比例到1500
                    return view.goTo(options.target);
                }
            });
            view.ui.add(locate, "top-right");
            // 运行该应用程序，然后单击“定位”按钮以找到您的位置。地图应缩放到1500比例。
            // 蓝色符号代表您的地理位置。您可以通过以下方式删除该图形：
            // 单击它，然后...在弹出窗口上单击以删除该图形

            //
            // 追踪你的位置
            //

            // Track控件动画视图到您的当前位置
            // 通过打开和关闭小部件来激活跟踪
            // 默认情况下，它将根据您的行进方向自动旋转视图
            // 通常，您仅使用一个地理位置小部件，因此请删除“定位”小部件并添加“跟踪”小部件

            var track = new Track({
                view: view,
                graphic: new Graphic({
                    symbol: {
                        type: "simple-marker",
                        size: "12px",
                        color: "green",
                        outline: {
                            color: "#efefef",
                            width: "1.5px"
                        }
                    }
                }),
                useHeadingEnabled: false
            });
            view.ui.add(track, "bottom-left");

            // 添加指南针
            //*** ADD ***//
            var compass = new Compass({
                view: view
            });

            // adds the compass to the top left corner of the MapView
            view.ui.add(compass, "top-left");

        })
    </script>
</head>
<body>
    <div id="viewDiv"></div>
</body>
</html>